//全局超时设置：5秒
var global_time_out = 10000;
// 行编辑保存类型的超时设置：20秒，比较长
var global_time_out_re = 20000;
//后端接口前缀
var baseAPiUrl='/api';
//获取全路径
function getFullApiUrl(url) {
	return baseAPiUrl+url;;
}
// 获取单个选择
function getSelectedSingleRow(gridName) {
	var rows = getSelectedRows(gridName);
	var num = rows.length;
	if (num > 1) {
		$.messager.alert('提示', '您选择了多条记录,只能选择一条记录进行修改!', 'info');
		return;
	} else {
		return rows;
	}
}

function getSelectedRows(gridName) {
	if (checkStrNull(gridName)) {
		gridName = 'grid';
	}
	var rows = $('#' + gridName).datagrid('getSelections');
	var num = rows.length;
	if (num == 0) {
		$.messager.alert('提示', '请选择一条记录进行操作!', 'info');
		return;
	} else {
		return rows;
	}
}

function getCurrentPageNumber(gridName){
    if (checkStrNull(gridName)) {
        gridName = 'grid';
    }
    var options = $('#' + gridName).datagrid('getPager').data("pagination").options;
    var page = options.pageNumber;//当前页数
	return page;
}

//判断是否为空
function checkStrNull(name) {
	if (name == null || name == ''|| name==undefined) {
		return true;
	} else {
		return false;
	}
}

function getNowDateTimeString() {
    return new Date().Format("yyyy-MM-dd hh:mm:ss");
}

function getNowDateString() {
    return new Date().Format("yyyy-MM-dd");
}

function formatDateStr(data) {
	if (data == null || data == '') {
		return '--';
	} else {
		return data.substr(0, 10);
	}
}

function formatTimeStr(data) {
	if (data == null || data == '') {
		return '--';
	} else {
		return data.substr(0, 19);
	}
}

//距离现在的时间
function tillNowSeconds(now,data) {
	// 支持 火狐、IE
	//data = data.replace(/-/g, "/");
	var nextExecuteTime = Date.parse(data);
	// console.log(nextExecuteTime);
	var nowTime=null;
	if(now==''||now == null){
		nowTime = new Date();
	}else{
		nowTime = Date.parse(now);
	}
	
	// 秒
	var r = (parseInt(nextExecuteTime - nowTime)) / 1000;
	return r;
}

//距离现在的时间
function tillNowDays(now,data) {
    var ss = tillNowSeconds(now,data);
    return ss/(24*3600);
}


//距离现在的时分秒
function tillNowString(second) {
	var time = '';
	if (second < 0) {
		time = '已过去';
		second = Math.abs(second);
	}
	if (second > 3600 * 24) {
		var days = parseInt(second/(3600*24));
		if(days<=30){
			return time + days + '天+';
		}else if(days<=365){
			var months =  parseInt(days/30);
            return time + months + '月+';
        }else{
            return time + '大于一年';
        }
	} else {
		if (second >= 3600) {
			time += parseInt(second / 3600) + '小时';
			second %= 3600;
		}
		if (second >= 60) {
			time += parseInt(second / 60) + '分钟';
			second %= 60;
		}
		if (second > 0) {
			time += parseInt(second) + '秒';
		}
		return time;
	}

}

//距离现在的时分秒
function formatSeconds(second) {
	var time = '';
	if (second >= 3600 * 24) {
		time += parseInt(second / (3600 * 24)) + '天';
		second %= 3600 * 24;
	}
	if (second >= 3600) {
		time += parseInt(second / 3600) + '小时';
		second %= 3600;
	}
	if (second >= 60) {
		time += parseInt(second / 60) + '分钟';
		second %= 60;
	}
	if (second > 0) {
		time += parseInt(second) + '秒';
	}
	return time;
}

//距离现在的年月日
function formatDays(days) {
    var time = '';
    if (days >= 365) {
        time += parseInt(days / 365) + '年';
        days %= 365;
    }
    if (days >= 30) {
        time += parseInt(days / 30) + '个月';
        days %= 30;
    }
    if (days > 0) {
        time += parseInt(days) + '天';
    }
    return time;
}

// 对Date的扩展，将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
// 例子：
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
Date.prototype.Format = function(fmt)
{ //author: meizz
    var o = {
        "M+" : this.getMonth()+1,                 //月份
        "d+" : this.getDate(),                    //日
        "h+" : this.getHours(),                   //小时
        "m+" : this.getMinutes(),                 //分
        "s+" : this.getSeconds(),                 //秒
        "q+" : Math.floor((this.getMonth()+3)/3), //季度
        "S"  : this.getMilliseconds()             //毫秒
    };
    if(/(y+)/.test(fmt))
        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)
        if(new RegExp("("+ k +")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
    return fmt;
}

//获取指定日期的月第一天
function getFirstDayOfMonth(date) {
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    if (month < 10) {
        month = "0" + month;
    }
    var firstDay = year + "-" + month + "-" + "01";//的第一天
	return firstDay;
}

//获取指定日期的月最后一天
function getLastDayOfMonth(date) {
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    if (month < 10) {
        month = "0" + month;
    }
    var myDate = new Date(year, month, 0);
    var lastDay = year + "-" + month + "-" + myDate.getDate();//月的最后一天
	return lastDay;
}

//获取这周的周一
function getFirstDayOfWeek (date) {
	var weekday = date.getDay()||7; //获取星期几,getDay()返回值是 0（周日） 到 6（周六） 之间的一个整数。0||7为7，即weekday的值为1-7
    date.setDate(date.getDate()-weekday+1);//往前算（weekday-1）天，年份、月份会自动变化
    var y = date.getFullYear(); //年
    var m = date.getMonth() + 1; //月
    var d = date.getDate(); //日
    return y + "-" + m + "-" + d;
}

//获取这周的周一
function getLastDayOfWeek (date) {
    var weekday = date.getDay()||7; //获取星期几,getDay()返回值是 0（周日） 到 6（周六） 之间的一个整数。0||7为7，即weekday的值为1-7
    date.setDate(date.getDate()-weekday+7);//往前算（weekday-1）天，年份、月份会自动变化
    var y = date.getFullYear(); //年
    var m = date.getMonth() + 1; //月
    var d = date.getDate(); //日
    return y + "-" + m + "-" + d;
}

// 获取距离当前日期，n为距离天数，负数表示往前
function getDay(n){
    var dd = new Date();
    dd.setDate(dd.getDate()+n);
    return dd.Format('yyyy-MM-dd');
}

// 距离指定日期天数后的日期
function getDayByDate(n,dateString){
    var dd = new Date(dateString);
    dd.setDate(dd.getDate()+n);
    return dd.Format('yyyy-MM-dd');
}


function getYear(n){
    var dd = new Date();
    return dd.getFullYear()+n;
}

// 分钟转换为小时，n为小数位数
function minuteToHour(minute,n) {
	var res= minute/60.0;
    return res.toFixed(n);
}

// 支持下拉框多选(即name相同的有多个)
function form2JsonEnhanced(id){
    var o = {};
    var a = $("#" + id).serializeArray();
    //alert(JSON.stringify(a));
    $.each(a, function () {
		if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        }else {
            o[this.name] = this.value || '';
        }
    });
    return o;
}

// 将表单数据转为json
function form2Json(id) {
	var json = JSON.parse(form2JsonString(id));
	return json;
}

// 将表单数据转为json字符(同个key的数组转换为以英文逗号分隔的字符)
function form2JsonString(id) {
	var data = form2JsonEnhanced(id);
	var jsonStr = "";
	jsonStr += '{';
	for(var key in data){
		//如果这里不把空字符串转换为null，导致提交的表单内容的空都是''，传到后台保存后为空字符，不是null，且枚举类型无法绑定
		if(data[key]==null||data[key]==''||data[key]=='undefined'||data[key]==undefined){
			jsonStr += '"' + key + '":null,';
		} else if((data[key] instanceof Array)){
			jsonStr += '"' + key + '":"' + data[key].join(',') + '",';
		}else{
			jsonStr += '"' + key + '":"' + data[key] + '",';
		}
	}
	jsonStr = jsonStr.substring(0, (jsonStr.length - 1));
	jsonStr += '}';
	return jsonStr;
}

function encodeJsonString(ss) {
	if(ss.indexOf('{')==0){
		return  encodeURIComponent(ss);
	}else{
		return ss;
	}
}

function errorHandler(XMLHttpRequest, textStatus, errorThrown) {
	$.toptip('请求失败!</br>服务器返回状态：' + textStatus + ",错误代码："
		+ XMLHttpRequest.status, 'error');
}

//初始化查询界面的开始、结束日期
function initSearchForm(formId){
    // 查询条件默认是最近一个月
    var formData = {
        startDate: getDay(-30),
        endDate: getDay(0)
    };
	$('#'+formId).loadJson(formData);
}

//初始化查询界面的开始、结束日期
function initSearchFormYear(formId){
    // 查询条件今年的
    var formData = {
        startDate: getYear(0)+'-01-01',
        endDate: getYear(0)+'-12-31'
    };
    $('#'+formId).loadJson(formData);
}

function showProgress(vtitle) {
	if (vtitle == null || vtitle == '') {
		vtitle = "请稍候";
	}
	$.showLoading(vtitle);
}

function closeProgress() {
	$.hideLoading();
}
function doAjax2(postData, vurl, rqType, showSucInfo,showProcess, callback){
	doAjax3(postData,vurl,rqType,showSucInfo,showProcess,true,callback);
}
function doAjax3(postData, vurl, rqType, showSucInfo,showProcess,async, callback) {
	vurl=baseAPiUrl+vurl;
	var pd;
	if(rqType=='GET'||rqType=='get'){
		pd=postData;
	}else{
		pd=JSON.stringify(postData);
	}
	var token = localStorage.getItem('token');
	$.ajax({
		url : vurl,
		type : rqType,
		dataType : 'json',
		contentType : 'application/json;charset=utf-8',
		data : pd,
		async:async,
		// traditional解决数组自动添加中挂号问题，导致后台无法绑定
		traditional:true,
		timeout : global_time_out,
		beforeSend : function(XMLHttpRequest) {
			if(showProcess){
				showProgress('');
			}
			if(token!=null){
				XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' +token);
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			if(showProcess){
				closeProgress();
			}
			errorHandler(XMLHttpRequest, textStatus, errorThrown);
		},
		success : function(data) {
			if(showProcess){
				closeProgress();
			}
			if (data.code == 0) {
				if (showSucInfo == true) {
					//$.toast("操作成功");
					$.toptip('操作成功', 'success');
				}
				if (callback) {
					callback(data.data);
				}

			}else if(data.code==10022){
				//需要让页面重新获取验证码
				callback(data);
			}else {
				handleErrorAjaxResponse(data);
			}
		}
	});
}

function doAjax(postData, vurl, rqType, showSucInfo, callback) {
	doAjax2(postData,vurl,rqType,showSucInfo,true,callback);
}

function doFormSubmit(postData, vurl, callback) {
	vurl=baseAPiUrl+vurl;
	var token = localStorage.getItem('token');
	$.ajax({
		url : vurl,
		type : 'POST',
		dataType : 'json',
		contentType : 'application/json;charset=utf-8',
		data : jsonToString(postData),
		// traditional解决数组自动添加中挂号问题，导致后台无法绑定
		traditional:true,
		timeout : global_time_out,
		beforeSend : function(XMLHttpRequest) {
			showProgress('');
			if(token!=null){
				XMLHttpRequest.setRequestHeader("Authorization", 'Bearer ' +token);
			}
		},
		error : function(XMLHttpRequest, textStatus, errorThrown) {
			closeProgress();
			errorHandler(XMLHttpRequest, textStatus, errorThrown);
		},
		success : function(data) {
			closeProgress();
			if (data.code == 0) {
				//$.toast("操作成功");
				$.toptip('操作成功', 'success');
				if (callback) {
					callback(data.data);
				}
			}else{
				handleErrorAjaxResponse(data);
			}
		}
	});
}

//处理错误异常
function handleErrorAjaxResponse(data) {
	if(data.code==10004){
		//showLogin();
		window.parent.location.href="../main/login.html";
	}else if(data.code==10019){
		window.parent.location.href="../main/secAuth.html";
	}else {
		$.toptip(data.message+'(code='+data.code+')', 'error');
		//$.toast("错误！"+data.message+'(code='+data.code+')', "forbidden");
	}
}

function showLogin() {
	$.login({
		title: '请首先进行登录',
		text: '输入用户名/密码',
		username: '',  // 默认用户名
		password: '',  // 默认密码
		onOK: function (username, password) {
			//点击确认
			var para ={
				username:username,
				password:password,
			};
			var url='/main/loginAuth';
			doAjax(para,url,'POST',false,function(data){
				$.toptip('验证成功','success')
			});
		},
		onCancel: function () {
			//点击取消
			$.toptip('已取消','warning')
		}
	});
}

function formatMoneyWithSymbal(pp){
	if(pp==null){
		return '';
	}
    return '￥'+pp.toFixed(2);
}

//两个日期间天数
function dateDiff(sDate1,  sDate2){
	//sDate1和sDate2是2002-12-18格式
    var oDate1,  oDate2,  iDays;
    var oDate1 = Date.parse(sDate1);
    var oDate2 = Date.parse(sDate2);;
    var iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24);   //把相差的毫秒数转换为天数
    return  iDays;
}

//两个日期间小时
function hourDiff(sDate1,  sDate2){
    //sDate1和sDate2是2002-12-18格式
    var oDate1,  oDate2,  iDays;
    var oDate1 = Date.parse(sDate1);
    var oDate2 = Date.parse(sDate2);;
    var iDays  =  parseFloat(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60 );   //把相差的毫秒数转换为天数
    return  iDays;
}

//两个时间间的分钟
function minuteDiff(sDate1,  sDate2){
    //sDate1和sDate2是2002-12-18格式
    var oDate1,  oDate2,  iDays;
    var oDate1 = Date.parse(sDate1);
    var oDate2 = Date.parse(sDate2);;
    var iDays  =  parseFloat(Math.abs(oDate1  -  oDate2)  /  1000  /  60  );   //把相差的毫秒数转换为天数
    return  iDays;
}

//两个日期间毫秒
function msecDiff(sDate1,  sDate2){
    //sDate1和sDate2是2002-12-18格式
    var oDate1,  oDate2,  iDays;
    var oDate1 = Date.parse(sDate1);
    var oDate2 = Date.parse(sDate2);;
    var msec  =  parseFloat(Math.abs(oDate1  -  oDate2) );
    return  msec;
}
function isToday(str) {
	var d = new Date(str.replace(/-/g,"/"));
	var todaysDate = new Date();
	if(d.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0)){
		return true;
	} else {
		return false;
	}
}
//获取状态的图片地址
function getStatusImage(va){
	if(va=='DISABLE'||va==false){
		return '<img src="../../static/image/cross.png"></img>';
	}else{
		return '<img src="../../static/image/tick.png"></img>';
	}
}

//获取星星
function getStar(n) {
	var vv =parseInt(n);
	var s='';
	for(var i=0;i<vv;i++){
		s+='★';
	}
	if(n>vv){
		//说明有小数部分
        s+='☆';
    }

	return s;
}

//计算百分比
function getPercent(num1,num2) {
	if(num2==0){
		return 'n/a';
	}
    return (Math.round(num1 / num2 * 10000) / 100.00);
}

//计算百分比（带百分号）
function getPercentWithSambol(num1,num2) {
    return getPercent(num1,num2) +"%";
}

//获取删除提示信息
function getDeleteConfirmMsg(ll) {
    return '您确认要删除这<'+ll+'>条数据吗?';
}

//根据ID列表删除
function commonDeleteByIds(vurlPrefix,id,callback) {
	$.confirm("您确定要删除该条记录吗?", "确认删除?", function() {
		var vurl = vurlPrefix;
		var postData={ids:id};
		doAjax(postData, vurl, 'POST', true, function(data) {
			if(callback){
				callback(data);
			}
		});
	}, function() {
		$.toptip('已取消', 'warning');
	});
}

//排序的函数
function objKeySort(arys) {
    //先用Object内置类的keys方法获取要排序对象的属性名，再利用Array原型上的sort方法对获取的属性名进行排序，newkey是一个数组
    var newkey = Object.keys(arys).sort();
    //console.log('newkey='+newkey);
    var newObj = {}; //创建一个新的对象，用于存放排好序的键值对
    for(var i = 0; i < newkey.length; i++) {
        //遍历newkey数组
        newObj[newkey[i]] = arys[newkey[i]];
        //向新创建的对象中按照排好的顺序依次增加键值对

    }
    return newObj; //返回排好序的新对象
}

//获取url参数
function getQueryVariable(variable) {
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if(pair[0] == variable){return pair[1];}
	}
	return(null);
}

//json转换为string
function jsonToString(data){
	return JSON.stringify(data);
}
function showInfoMsg(msg){
	$.alert(msg, "提示！");
}
//form 加载json数据
$.fn.loadJson = function(jsonValue) {
	var obj = this;
	$.each(jsonValue, function(name, ival) {
		var $oinput = obj.find("[name=" + name + "]");
		//alert('name:'+name+',type='+$oinput.attr("type"));
		if ($oinput.attr("type") == "radio"
			|| $oinput.attr("type") == "checkbox") {
			$oinput.each(function() {
				if($oinput.attr("class")=='weui-switch'){
					//开关
					$("#"+name).prop("checked",ival);
				}else if (Object.prototype.toString.apply(ival) == '[object Array]') {//是复选框，并且是数组
					for (var i = 0; i < ival.length; i++) {
						if ($(this).val() == ival[i])
							$(this).attr("checked", "checked");
					}
				} else {
					if ($(this).val() == ival)
						$(this).attr("checked", "checked");
				}
			});
		} else if ($oinput.attr("type") == "textarea") {//多行文本框
			obj.find("[name=" + name + "]").html(ival);
		} else if ($oinput.attr("type") == "tag") {//tag标签
			//alert('find tag:'+name);
			if(ival!=null){
				//第二个参数true表示不自动focus
				$('#'+name).tagEditor('addTag',ival,true);
			}
		} else {
			obj.find("[name=" + name + "]").val(ival);
		}
	});
};
//清空表单
function clearForm(id) {
	//jQuery("#"+id).form("clear");
	document.getElementById(id).reset();
}

//列表页中增加页码数
function addPage(n,id) {
	if(id==null||id==''||id==undefined){
		id='page';
	}
	var pp = document.getElementById(id);
	if(pp){
		pp.value=parseInt(pp.value)+n;
	}
}
//设置页码
function setPage(v,id) {
	if(id==null||id==''||id==undefined){
		id='page';
	}
	document.getElementById(id).value=v;
}

//获取select列表
function loadSelectList(url,selectId,fieldId,title,selectFirst,async,onchangeFunc,loadSucFunc) {
	doAjax3(null, url, 'GET',false, false,async,function(data) {
		var items =new Array();
		var dv;
		var di;
		if(data.length>0){
			for(var j=0;j<data.length;j++){
				if(data[j].children!=null){
					var item ={
						title: '****'+data[j].text+'****',
						value: ''
					}
					items.push(item);
					var n = data[j].children.length;
					for(var k=0;k<n;k++){
						var ch ={
							title: data[j].children[k].text,
							value: data[j].children[k].id
						}
						items.push(ch);
					}
				}else{
					var item ={
						title: data[j].text,
						value: data[j].id
					}
					items.push(item);
				}
			}
			if(data[0].children!=null){
				dv = data[0].children[0].text;
				di = data[0].children[0].id;
			}else{
				dv = data[0].text;
				di = data[0].id;
			}
		}
		if($("#"+selectId).val()==null){
			$("#"+selectId).select({
				title: title,
				multi: false,
				items: items,
				onChange: function(data) {
					loadSelectListChangeFunc(data,fieldId,onchangeFunc);
				},
			});
		}else{
			$("#"+selectId).select("update",{
				title: title,
				multi: false,
				items: items,
				onChange: function(data) {
					loadSelectListChangeFunc(data,fieldId,onchangeFunc);
				},
			});
		}
		if(true==selectFirst){
			//设置第一个选中
			document.getElementById(selectId).value=dv;
			document.getElementById(fieldId).value=di;
			if(onchangeFunc){
				//需要首次加载
				onchangeFunc(null,di);
			}
		}
		if(loadSucFunc){
			loadSucFunc();
		}
	});
}

function loadSelectListChangeFunc(data,fieldId,callback) {
	if(data==null||data==undefined){
		return;
	}
	var value = data.values;
	if(value==null||value==undefined){
		return;
	}
	var old = document.getElementById(fieldId).value;
	if(old==value){
		//没有改变
		return;
	}
	document.getElementById(fieldId).value=value;
	if(callback==null){
		return;
	}else{
		callback(old,value);
	}
}
//普通的select模式
function loadSelectListNormal(url,selectId,vid,vname,selectFirst,async,loadSucFunc) {
	//获取配置
	doAjax3(null, url, 'GET',false,false,async, function(data) {
		var html='';
		if(data==null||data.length==0){
			$("#"+selectId).html('');
			return;
		}
		html+='<select class="weui-input" id="'+vid+'" name="'+vname+'" style="width: 70%">\n';
		for(var j=0;j<data.length;j++){
			if(data[j].children!=null){
				html+='<option value="'+data[j].id+'">****'+data[j].text+'****</option>\n';
				var n = data[j].children.length;
				for(var k=0;k<n;k++){
					html+='<option value="'+data[j].children[k].id+'">'+data[j].children[k].text+'</option>\n';
				}
			}else{
				html+='<option value="'+data[j].id+'">'+data[j].text+'</option>\n';
			}
		}
		html+='</select>';
		$("#"+selectId).html(html);
		if(loadSucFunc){
			loadSucFunc();
		}
	});
}
//数字的组件start
var MAX = 99, MIN = 1;
$('.weui-count__decrease').click(function (e) {
	var $input = $(e.currentTarget).parent().find('.weui-count__number');
	var number = parseInt($input.val() || "0") - 1
	if (number < MIN) number = MIN;
	$input.val(number)
});
$('.weui-count__increase').click(function (e) {
	var $input = $(e.currentTarget).parent().find('.weui-count__number');
	var number = parseInt($input.val() || "0") + 1
	if (number > MAX) number = MAX;
	$input.val(number)
})

$('.delete-swipeout').click(function () {
	$(this).parents('.weui-cell').remove()
})
$('.close-swipeout').click(function () {
	$(this).parents('.weui-cell').swipeout('close')
})
//数字的组件end
function datetimePicker(id,onchangeFunc) {
	$("#"+id).datetimePicker({
		title: '请选择时间',
		yearSplit: '-',
		monthSplit: '-',
		dateSplit: '',
		onChange: function (picker, values, displayValues) {
			if(onchangeFunc){
				onchangeFunc(values,displayValues);
			}
			//console.log(values);
		},
		times: function () {
			return [  // 自定义的时间
				{
					values: (function () {
						var hours = [];
						for (var i=0; i<24; i++) hours.push(i > 9 ? i : '0'+i);
						return hours;
					})()
				},
				{
					divider: true,  // 这是一个分隔符
					content: ':'
				},
				{
					values: (function () {
						var minutes = [];
						for (var i=0; i<59; i++) minutes.push(i > 9 ? i : '0'+i);
						return minutes;
					})()
				},
				{
					divider: true,  // 这是一个分隔符
					content: ':00'
				}
			];
		},
	});
}

//列表加载公共方法，目前不显示进度提示
function loadListData(formId,dataContentId,pageId,url,rowFunc,loadSucFunc) {
	var para = form2Json(formId);
	var showProcess = false;
	var pn = parseInt(para.page);
	if(pn==1){
		//第一页要显示，一种情况是刚进这个页面，另一种情况是搜索，不显示进度条，容易让用户觉得没有反应
		showProcess=true;
	}
	para.needTotal = false;
	//获取配置
	doAjax2(para, url, 'GET',false, showProcess,function(data) {
		var n = 0;
		if(data.rows){
			n = data.rows.length;
		}
		var html = '';
		var lsHtml='';
		if(n>0){
			for(var j=0;j<data.rows.length;j++){
				html+=rowFunc(data.rows[j]);
			}
			lsHtml = '<span class="weui-loadmore__tips">加载中...</span>';
		}else{
			if(pn==1){
				html='<div align="center">查询不到数据...</div>';
				//第一页不显示加载中
				lsHtml = '';
			}else{
				$.toptip('无更多数据', 'error');
			}
		}
		if(pn==1){
			//第一页直接覆盖
			document.getElementById(dataContentId).innerHTML = html;
		}else{
			$("#"+dataContentId).append(html);
		}
		document.getElementById(pageId).value=data.page;
		var ls =document.getElementById('loadingSpan');
		if(ls){
			ls.innerHTML = lsHtml;
		}
		loading = false;
		if(loadSucFunc){
			loadSucFunc();
		}
	});
}

function setElementInnerHTML(id,v) {
	var ss = document.getElementById(id);
	if(ss){
		ss.innerHTML=v;
	}
}

function initTagEdit(ids) {
	for (var i=0;i<ids.length;i++ ) {
		$("#"+ids[i]).tagEditor({
			placeholder:"每输入一个按回车~~"
		});
	}
}
//删除tag的所有内容(如果采用removeTag方法，会导致空格问题)
function removeTag(ids) {
	for (var i=0;i<ids.length;i++ ) {
		$("#"+ids[i]).tagEditor('destroy');
		//解决标签标记框第二次初始化无法清除原来的数据的BUG
		$("#"+ids[i]).val(null);
		$("#"+ids[i]).tagEditor({
			placeholder:"每输入一个按回车~~"
		});
	// 	var tags = $("#"+ids[i]).tagEditor('getTags')[0].tags;
	// 	for (var j = 0; j < tags.length; j++) {
	// 		$("#"+ids[i]).tagEditor('removeTag', tags[j]);
	// 	}
	}
}

function focusInput(id) {
	//alert('focus:'+id);
	//$('#'+id).focus();
}
//监听浏览器回退，针对页面中采用popup模式的编辑表单
function pushStateListener() {
	$(document).ready(function(e) {
		if (window.history && window.history.pushState) {
			$(window).on('popstate', function () {
				var n = $(".weui-popup__container--visible").length;
				if(n>0){
					$.closePopup();
					window.history.pushState('forward', null, '#'); //在IE中必须得有这两行
					window.history.forward(-1);
				}else{
					window.history.back();
				}
			});
		}
		window.history.pushState('forward', null, '#'); //在IE中必须得有这两行
		window.history.forward(1);
	});
}
var loading = false;  //状态标记
//上拉刷新
function pushRefresh(callback) {
	$(document.body).infinite(100);
	$(document.body).infinite().on("infinite", function() {
		if(loading) return;
		loading = true;
		//$("#list").append("<p> 我是新加载的内容 </p>");
		addPage(1);
		callback();
	});
}
function showEditTag(fromId,userTagUrl,systemTagCode) {
	showEditTag2(fromId,userTagUrl,systemTagCode,true);
}
//有些编辑框是普通的text编辑
function showEditTag2(fromId,userTagUrl,systemTagCode,intTagEditor) {
	$.openPopup('#edit-tag-popup') ;
	if(intTagEditor){
		removeTag(['commonTag']);
		$('#commonTag').tagEditor('addTag', $('#'+fromId).val(),true);
	}
	//加载标签
	doAjax(null,userTagUrl,'GET',false,function(data){
		var html='';
		if(data){
			for(var i=0;i<data.length;i++){
				html+='<label class="label f-white bg-green" onclick="addEditTag(\''+data[i].text+'\')">'+data[i].text+'</label>';
			}
		}
		setElementInnerHTML('userTagList',html);
	});
	if(systemTagCode){
		//加载系统标签
		var systemTagUrl='/dictItem/getDictItemTree?code='+systemTagCode;
		doAjax(null,systemTagUrl,'GET',false,function(data){
			var html='';
			if(data){
				for(var i=0;i<data.length;i++){
					html+='<label class="label f-red b-red" onclick="addEditTag(\''+data[i].text+'\')">'+data[i].text+'</label>';
				}
			}
			setElementInnerHTML('systemTagList',html);
		});
	}
}
function addEditTag(tag) {
	$('#commonTag').tagEditor('addTag', tag,true);
}
function saveEditTag(fromId) {
	removeTag([fromId]);
	$('#'+fromId).tagEditor('addTag', $('#commonTag').val(),true);
	$.openPopup('#edit-popup') ;
}
//返回顶部
function gotoTop() {
	scroll(0,0);
}

function datePicker(id) {
	$("#"+id).calendar({
		//初始值无效
		dateFormat: 'yyyy-mm-dd'
	});
}
//获取客户端浏览器类型
function getBrowserClientType() {
	if (/MicroMessenger/.test(window.navigator.userAgent)) {
		return 'WECHAT';
	} else if (/AlipayClient/.test(window.navigator.userAgent)) {
		return 'ALIPAY';
	} else {
		return 'OTHER';
	}
}
function getMomentFu(dt) {
	var hs= dt.substr(11,2);
	return getMoment(hs);
}
function getMoment(hs) {
	var h =parseInt(hs);
	if (0<=h&&h<11) {
		return '上午';
	}else if(11<=h&&h<13){
		return '中午';
	}else if(12<h&&h<=17){
		return '下午';
	}else {
		return '晚上';
	}
}
//是否为空
function isStrEmpty(s) {
	if(s==null||s==''||s==undefined){
		return true;
	}else{
		return false;
	}
}